﻿namespace OmniKits.Windows.Interop
{
    partial class User32
    {
        public const int WM_NULL = 0;
        public const int WM_CREATE = 1;
        public const int WM_DESTROY = 2;
        public const int WM_MOVE = 3;
        public const int WM_SIZE = 5;

        public const int WM_ACTIVATE = 6;

        public const int WM_SETFOCUS = 7;
        public const int WM_KILLFOCUS = 8;
        public const int WM_ENABLE = 0xA;
        public const int WM_SETREDRAW = 0xB;
        public const int WM_SETTEXT = 0xC;
        public const int WM_GETTEXT = 0xD;
        public const int WM_GETTEXTLENGTH = 0xE;
        public const int WM_PAINT = 0xF;
        public const int WM_CLOSE = 0x10;
        public const int WM_QUERYENDSESSION = 0x11;
        public const int WM_QUERYOPEN = 0x13;
        public const int WM_ENDSESSION = 0x16;
        public const int WM_QUIT = 0x12;
        public const int WM_ERASEBKGND = 0x14;
        public const int WM_SYSCOLORCHANGE = 0x15;
        public const int WM_SHOWWINDOW = 0x18;
        public const int WM_WININICHANGE = 0x1A;
        public const int WM_SETTINGCHANGE = WM_WININICHANGE;

        public const int WM_DEVMODECHANGE = 0x1B;
        public const int WM_ACTIVATEAPP = 0x1C;
        public const int WM_FONTCHANGE = 0x1D;
        public const int WM_TIMECHANGE = 0x1E;
        public const int WM_CANCELMODE = 0x1F;
        public const int WM_SETCURSOR = 0x20;
        public const int WM_MOUSEACTIVATE = 0x21;
        public const int WM_CHILDACTIVATE = 0x22;
        public const int WM_QUEUESYNC = 0x23;

        public const int WM_GETMINMAXINFO = 0x24;

        public const int WM_PAINTICON = 0x26;
        public const int WM_ICONERASEBKGND = 0x27;
        public const int WM_NEXTDLGCTL = 0x28;
        public const int WM_SPOOLERSTATUS = 0x2A;
        public const int WM_DRAWITEM = 0x2B;
        public const int WM_MEASUREITEM = 0x2C;
        public const int WM_DELETEITEM = 0x2D;
        public const int WM_VKEYTOITEM = 0x2E;
        public const int WM_CHARTOITEM = 0x2F;
        public const int WM_SETFONT = 0x30;
        public const int WM_GETFONT = 0x31;
        public const int WM_SETHOTKEY = 0x32;
        public const int WM_GETHOTKEY = 0x33;
        public const int WM_QUERYDRAGICON = 0x37;
        public const int WM_COMPAREITEM = 0x39;
        public const int WM_GETOBJECT = 0x3D;
        public const int WM_COMPACTING = 0x41;
        public const int WM_COMMNOTIFY = 0x44;  /* no longer suported */
        public const int WM_WINDOWPOSCHANGING = 0x46;
        public const int WM_WINDOWPOSCHANGED = 0x47;

        public const int WM_POWER = 0x48;

        public const int WM_COPYDATA = 0x4A;
        public const int WM_CANCELJOURNAL = 0x4B;

        public const int WM_NOTIFY = 0x4E;
        public const int WM_INPUTLANGCHANGEREQUEST = 0x50;
        public const int WM_INPUTLANGCHANGE = 0x51;
        public const int WM_TCARD = 0x52;
        public const int WM_HELP = 0x53;
        public const int WM_USERCHANGED = 0x54;
        public const int WM_NOTIFYFORMAT = 0x55;

        public const int WM_CONTEXTMENU = 0x7B;
        public const int WM_STYLECHANGING = 0x7C;
        public const int WM_STYLECHANGED = 0x7D;
        public const int WM_DISPLAYCHANGE = 0x7E;
        public const int WM_GETICON = 0x7F;
        public const int WM_SETICON = 0x80;

        public const int WM_NCCREATE = 0x81;
        public const int WM_NCDESTROY = 0x82;
        public const int WM_NCCALCSIZE = 0x83;
        public const int WM_NCHITTEST = 0x84;
        public const int WM_NCPAINT = 0x85;
        public const int WM_NCACTIVATE = 0x86;
        public const int WM_GETDLGCODE = 0x87;
        public const int WM_SYNCPAINT = 0x88;
        public const int WM_NCMOUSEMOVE = 0xA0;
        public const int WM_NCLBUTTONDOWN = 0xA1;
        public const int WM_NCLBUTTONUP = 0xA2;
        public const int WM_NCLBUTTONDBLCLK = 0xA3;
        public const int WM_NCRBUTTONDOWN = 0xA4;
        public const int WM_NCRBUTTONUP = 0xA5;
        public const int WM_NCRBUTTONDBLCLK = 0xA6;
        public const int WM_NCMBUTTONDOWN = 0xA7;
        public const int WM_NCMBUTTONUP = 0xA8;
        public const int WM_NCMBUTTONDBLCLK = 0xA9;

        public const int WM_NCXBUTTONDOWN = 0xAB;
        public const int WM_NCXBUTTONUP = 0xAC;
        public const int WM_NCXBUTTONDBLCLK = 0xAD;

        public const int WM_INPUT_DEVICE_CHANGE = 0xFE;

        public const int WM_INPUT = 0xFF;

        public const int WM_KEYFIRST = 0x100;
        public const int WM_KEYDOWN = 0x100;
        public const int WM_KEYUP = 0x101;
        public const int WM_CHAR = 0x102;
        public const int WM_DEADCHAR = 0x103;
        public const int WM_SYSKEYDOWN = 0x104;
        public const int WM_SYSKEYUP = 0x105;
        public const int WM_SYSCHAR = 0x106;
        public const int WM_SYSDEADCHAR = 0x107;
        public const int WM_UNICHAR = 0x109;
        public const int WM_KEYLAST = 0x109;
        public const int UNICODE_NOCHAR = 0xFFFF;

        public const int WM_IME_STARTCOMPOSITION = 0x10D;
        public const int WM_IME_ENDCOMPOSITION = 0x10E;
        public const int WM_IME_COMPOSITION = 0x10F;
        public const int WM_IME_KEYLAST = 0x10F;

        public const int WM_INITDIALOG = 0x110;
        public const int WM_COMMAND = 0x111;
        public const int WM_SYSCOMMAND = 0x112;
        public const int WM_TIMER = 0x113;
        public const int WM_HSCROLL = 0x114;
        public const int WM_VSCROLL = 0x115;
        public const int WM_INITMENU = 0x116;
        public const int WM_INITMENUPOPUP = 0x117;
        public const int WM_SYSTIMER = 0x118;
        public const int WM_GESTURE = 0x119;
        public const int WM_GESTURENOTIFY = 0x11A;
        public const int WM_MENUSELECT = 0x11F;
        public const int WM_MENUCHAR = 0x120;
        public const int WM_ENTERIDLE = 0x121;
        public const int WM_MENURBUTTONUP = 0x122;
        public const int WM_MENUDRAG = 0x123;
        public const int WM_MENUGETOBJECT = 0x124;
        public const int WM_UNINITMENUPOPUP = 0x125;
        public const int WM_MENUCOMMAND = 0x126;

        public const int WM_CHANGEUISTATE = 0x127;
        public const int WM_UPDATEUISTATE = 0x128;
        public const int WM_QUERYUISTATE = 0x129;

        public const int WM_CTLCOLORMSGBOX = 0x132;
        public const int WM_CTLCOLOREDIT = 0x133;
        public const int WM_CTLCOLORLISTBOX = 0x134;
        public const int WM_CTLCOLORBTN = 0x135;
        public const int WM_CTLCOLORDLG = 0x136;
        public const int WM_CTLCOLORSCROLLBAR = 0x137;
        public const int WM_CTLCOLORSTATIC = 0x138;

        public const int WM_MOUSEFIRST = 0x200;
        public const int WM_MOUSEMOVE = 0x200;
        public const int WM_LBUTTONDOWN = 0x201;
        public const int WM_LBUTTONUP = 0x202;
        public const int WM_LBUTTONDBLCLK = 0x203;
        public const int WM_RBUTTONDOWN = 0x204;
        public const int WM_RBUTTONUP = 0x205;
        public const int WM_RBUTTONDBLCLK = 0x206;
        public const int WM_MBUTTONDOWN = 0x207;
        public const int WM_MBUTTONUP = 0x208;
        public const int WM_MBUTTONDBLCLK = 0x209;
        public const int WM_MOUSEWHEEL = 0x20A;
        public const int WM_XBUTTONDOWN = 0x20B;
        public const int WM_XBUTTONUP = 0x20C;
        public const int WM_XBUTTONDBLCLK = 0x20D;
        public const int WM_MOUSEHWHEEL = 0x20E;
        public const int WM_MOUSELAST = 0x20E;

        public const int WM_PARENTNOTIFY = 0x210;
        public const int WM_ENTERMENULOOP = 0x211;
        public const int WM_EXITMENULOOP = 0x212;

        public const int WM_NEXTMENU = 0x213;
        public const int WM_SIZING = 0x214;
        public const int WM_CAPTURECHANGED = 0x215;
        public const int WM_MOVING = 0x216;

        public const int WM_POWERBROADCAST = 0x218;

        public const int WM_DEVICECHANGE = 0x219;

        public const int WM_MDICREATE = 0x220;
        public const int WM_MDIDESTROY = 0x221;
        public const int WM_MDIACTIVATE = 0x222;
        public const int WM_MDIRESTORE = 0x223;
        public const int WM_MDINEXT = 0x224;
        public const int WM_MDIMAXIMIZE = 0x225;
        public const int WM_MDITILE = 0x226;
        public const int WM_MDICASCADE = 0x227;
        public const int WM_MDIICONARRANGE = 0x228;
        public const int WM_MDIGETACTIVE = 0x229;

        public const int WM_MDISETMENU = 0x230;
        public const int WM_ENTERSIZEMOVE = 0x231;
        public const int WM_EXITSIZEMOVE = 0x232;
        public const int WM_DROPFILES = 0x233;
        public const int WM_MDIREFRESHMENU = 0x234;

        public const int WM_POINTERDEVICECHANGE = 0x238;
        public const int WM_POINTERDEVICEINRANGE = 0x239;
        public const int WM_POINTERDEVICEOUTOFRANGE = 0x23A;

        public const int WM_TOUCH = 0x240;

        public const int WM_NCPOINTERUPDATE = 0x241;
        public const int WM_NCPOINTERDOWN = 0x242;
        public const int WM_NCPOINTERUP = 0x243;
        public const int WM_POINTERUPDATE = 0x245;
        public const int WM_POINTERDOWN = 0x246;
        public const int WM_POINTERUP = 0x247;
        public const int WM_POINTERENTER = 0x249;
        public const int WM_POINTERLEAVE = 0x24A;
        public const int WM_POINTERACTIVATE = 0x24B;
        public const int WM_POINTERCAPTURECHANGED = 0x24C;
        public const int WM_TOUCHHITTESTING = 0x24D;
        public const int WM_POINTERWHEEL = 0x24E;
        public const int WM_POINTERHWHEEL = 0x24F;
        public const int DM_POINTERHITTEST = 0x250;

        public const int WM_IME_SETCONTEXT = 0x281;
        public const int WM_IME_NOTIFY = 0x282;
        public const int WM_IME_CONTROL = 0x283;
        public const int WM_IME_COMPOSITIONFULL = 0x284;
        public const int WM_IME_SELECT = 0x285;
        public const int WM_IME_CHAR = 0x286;
        public const int WM_IME_REQUEST = 0x288;
        public const int WM_IME_KEYDOWN = 0x290;
        public const int WM_IME_KEYUP = 0x291;

        public const int WM_MOUSEHOVER = 0x2A1;
        public const int WM_MOUSELEAVE = 0x2A3;
        public const int WM_NCMOUSEHOVER = 0x2A0;
        public const int WM_NCMOUSELEAVE = 0x2A2;

        public const int WM_WTSSESSION_CHANGE = 0x2B1;

        public const int WM_TABLET_FIRST = 0x2c0;
        public const int WM_TABLET_LAST = 0x2df;

        public const int WM_DPICHANGED = 0x2E0;

        public const int WM_CUT = 0x300;
        public const int WM_COPY = 0x301;
        public const int WM_PASTE = 0x302;
        public const int WM_CLEAR = 0x303;
        public const int WM_UNDO = 0x304;
        public const int WM_RENDERFORMAT = 0x305;
        public const int WM_RENDERALLFORMATS = 0x306;
        public const int WM_DESTROYCLIPBOARD = 0x307;
        public const int WM_DRAWCLIPBOARD = 0x308;
        public const int WM_PAINTCLIPBOARD = 0x309;
        public const int WM_VSCROLLCLIPBOARD = 0x30A;
        public const int WM_SIZECLIPBOARD = 0x30B;
        public const int WM_ASKCBFORMATNAME = 0x30C;
        public const int WM_CHANGECBCHAIN = 0x30D;
        public const int WM_HSCROLLCLIPBOARD = 0x30E;
        public const int WM_QUERYNEWPALETTE = 0x30F;
        public const int WM_PALETTEISCHANGING = 0x310;
        public const int WM_PALETTECHANGED = 0x311;
        public const int WM_HOTKEY = 0x312;

        public const int WM_PRINT = 0x317;
        public const int WM_PRINTCLIENT = 0x318;

        public const int WM_APPCOMMAND = 0x319;

        public const int WM_THEMECHANGED = 0x31A;

        public const int WM_CLIPBOARDUPDATE = 0x31D;

        public const int WM_DWMCOMPOSITIONCHANGED = 0x31E;
        public const int WM_DWMNCRENDERINGCHANGED = 0x31F;
        public const int WM_DWMCOLORIZATIONCOLORCHANGED = 0x320;
        public const int WM_DWMWINDOWMAXIMIZEDCHANGE = 0x321;

        public const int WM_DWMSENDICONICTHUMBNAIL = 0x323;
        public const int WM_DWMSENDICONICLIVEPREVIEWBITMAP = 0x326;

        public const int WM_GETTITLEBARINFOEX = 0x33F;

        public const int WM_HANDHELDFIRST = 0x358;
        public const int WM_HANDHELDLAST = 0x35F;

        public const int WM_AFXFIRST = 0x360;
        public const int WM_AFXLAST = 0x37F;

        public const int WM_PENWINFIRST = 0x380;
        public const int WM_PENWINLAST = 0x38F;

        public const int WM_APP = 0x8000;

        public const int WM_USER = 0x400;
    }
}

namespace OmniKits.Windows.Interop
{
    using static User32;

    public enum WindowMessage : int
    {
        Null = WM_NULL,
        Create = WM_CREATE,
        Destroy = WM_DESTROY,
        Move = WM_MOVE,
        Size = WM_SIZE,

        Activate = WM_ACTIVATE,

        SetFocus = WM_SETFOCUS,
        KillFocus = WM_KILLFOCUS,
        Enable = WM_ENABLE,
        SetRedraw = WM_SETREDRAW,
        SetText = WM_SETTEXT,
        GetText = WM_GETTEXT,
        GetTextLength = WM_GETTEXTLENGTH,
        Paint = WM_PAINT,
        Close = WM_CLOSE,
        QueryEndSession = WM_QUERYENDSESSION,
        QueryOpen = WM_QUERYOPEN,
        EndSession = WM_ENDSESSION,
        Quit = WM_QUIT,
        EraseBackground = WM_ERASEBKGND,
        SysColorChange = WM_SYSCOLORCHANGE,
        ShowWindow = WM_SHOWWINDOW,
        WinIniChange = WM_WININICHANGE,
        SettingChange = WM_SETTINGCHANGE,

        DeviceModeChange = WM_DEVMODECHANGE,
        ActivateApplication = WM_ACTIVATEAPP,
        FontChange = WM_FONTCHANGE,
        TimeChange = WM_TIMECHANGE,
        CancelMode = WM_CANCELMODE,
        SetCursor = WM_SETCURSOR,
        MouseActivate = WM_MOUSEACTIVATE,
        ChildActivate = WM_CHILDACTIVATE,
        QueueSync = WM_QUEUESYNC,

        GetMinMaxInfo = WM_GETMINMAXINFO,

        PaintIcon = WM_PAINTICON,
        IconEraseBackground = WM_ICONERASEBKGND,
        NextDialogControl = WM_NEXTDLGCTL,
        SpoolerStatus = WM_SPOOLERSTATUS,
        DrawItem = WM_DRAWITEM,
        MeasureItem = WM_MEASUREITEM,
        DeleteItem = WM_DELETEITEM,
        VirtualKeyToItem = WM_VKEYTOITEM,
        CharToItem = WM_CHARTOITEM,
        SetFont = WM_SETFONT,
        GetFont = WM_GETFONT,
        SetHotKey = WM_SETHOTKEY,
        GetHotKey = WM_GETHOTKEY,
        QueryDragIcon = WM_QUERYDRAGICON,
        CompareItem = WM_COMPAREITEM,
        GetObject = WM_GETOBJECT,
        Compacting = WM_COMPACTING,
        ComPortNotify = WM_COMMNOTIFY,  /* no longer suported */
        WindowPosChanging = WM_WINDOWPOSCHANGING,
        WindowPosChanged = WM_WINDOWPOSCHANGED,

        Power = WM_POWER,

        CopyGlobalData = 73,
        CopyData = WM_COPYDATA,
        CancelJournal = WM_CANCELJOURNAL,

        Notify = WM_NOTIFY,
        InputLangChangeRequest = WM_INPUTLANGCHANGEREQUEST,
        InputLangChange = WM_INPUTLANGCHANGE,
        TrainingCard = WM_TCARD,
        Help = WM_HELP,
        UserChanged = WM_USERCHANGED,
        NotifyFormat = WM_NOTIFYFORMAT,

        ContextMenu = WM_CONTEXTMENU,
        StyleChanging = WM_STYLECHANGING,
        StyleChanged = WM_STYLECHANGED,
        DisplayChange = WM_DISPLAYCHANGE,
        GetIcon = WM_GETICON,
        SetIcon = WM_SETICON,

        NCCreate = WM_NCCREATE,
        NCDestroy = WM_NCDESTROY,
        NCCalcSize = WM_NCCALCSIZE,
        NCHitTest = WM_NCHITTEST,
        NCPaint = WM_NCPAINT,
        NCActivate = WM_NCACTIVATE,
        GetDialogCode = WM_GETDLGCODE,
        SyncPaint = WM_SYNCPAINT,
        NCMouseMove = WM_NCMOUSEMOVE,
        NCLeftButtonDown = WM_NCLBUTTONDOWN,
        NCLeftButtonUp = WM_NCLBUTTONUP,
        NCLeftButtonDoubleClick = WM_NCLBUTTONDBLCLK,
        NCRightButtonDown = WM_NCRBUTTONDOWN,
        NCRightButtonUp = WM_NCRBUTTONUP,
        NCRightButtonDoubleClick = WM_NCRBUTTONDBLCLK,
        NCMiddleButtonDown = WM_NCMBUTTONDOWN,
        NCMiddleButtonUp = WM_NCMBUTTONUP,
        NCMiddleButtonDoubleClick = WM_NCMBUTTONDBLCLK,

        NCXButtonDown = WM_NCXBUTTONDOWN,
        NCXButtonUp = WM_NCXBUTTONUP,
        NCXButtonDoubleClick = WM_NCXBUTTONDBLCLK,

        InputDeviceChange = WM_INPUT_DEVICE_CHANGE,

        Input = WM_INPUT,

        KeyFirst = WM_KEYFIRST,
        KeyDown = WM_KEYDOWN,
        KeyUp = WM_KEYUP,
        Char = WM_CHAR,
        DeadChar = WM_DEADCHAR,
        SysKeyDown = WM_SYSKEYDOWN,
        SysKeyUp = WM_SYSKEYUP,
        SysChar = WM_SYSCHAR,
        SysDeadChar = WM_SYSDEADCHAR,
        UnicodeChar = WM_UNICHAR,
        KeyLast = WM_KEYLAST,

        ImeStartComposition = WM_IME_STARTCOMPOSITION,
        ImeEndComposition = WM_IME_ENDCOMPOSITION,
        ImeComposition = WM_IME_COMPOSITION,
        ImeKeyLast = WM_IME_KEYLAST,


        InitializeDialog = WM_INITDIALOG,
        Command = WM_COMMAND,
        SysCommand = WM_SYSCOMMAND,
        Timer = WM_TIMER,
        HorizontalScroll = WM_HSCROLL,
        VerticalScroll = WM_VSCROLL,
        InitializeMenu = WM_INITMENU,
        InitializeMenuPopup = WM_INITMENUPOPUP,
        SysTimer = WM_SYSTIMER,
        Gesture = WM_GESTURE,
        GestureNotify = WM_GESTURENOTIFY,
        MenuSelect = WM_MENUSELECT,
        MenuChar = WM_MENUCHAR,


        EnterIdle = WM_ENTERIDLE,
        MenuRightButtonUp = WM_MENURBUTTONUP,
        MenuDrag = WM_MENUDRAG,
        MenuGetObject = WM_MENUGETOBJECT,
        UninitializeMenuPopup = WM_UNINITMENUPOPUP,
        MenuCommand = WM_MENUCOMMAND,

        ChangeUIState = WM_CHANGEUISTATE,
        UpdateUIState = WM_UPDATEUISTATE,
        QueryUIState = WM_QUERYUISTATE,

        ControlColorMessageBox = WM_CTLCOLORMSGBOX,
        ControlColorEdit = WM_CTLCOLOREDIT,
        ControlColorListBox = WM_CTLCOLORLISTBOX,
        ControlColorButton = WM_CTLCOLORBTN,
        ControlColorDialog = WM_CTLCOLORDLG,
        ControlColorScrollBar = WM_CTLCOLORSCROLLBAR,
        ControlColorStatic = WM_CTLCOLORSTATIC,

        MouseFirst = WM_MOUSEFIRST,
        MouseMove = WM_MOUSEMOVE,
        LeftButtonDown = WM_LBUTTONDOWN,
        LeftButtonUp = WM_LBUTTONUP,
        LeftButtonDoubleClick = WM_LBUTTONDBLCLK,
        RightButtonDown = WM_RBUTTONDOWN,
        RightButtonUp = WM_RBUTTONUP,
        RightButtonDoubleClick = WM_RBUTTONDBLCLK,
        MiddleButtonDown = WM_MBUTTONDOWN,
        MiddleButtonUp = WM_MBUTTONUP,
        MiddleButtonDoubleClick = WM_MBUTTONDBLCLK,
        MouseWheel = WM_MOUSEWHEEL,
        XButtonDown = WM_XBUTTONDOWN,
        XButtonUp = WM_XBUTTONUP,
        XButtonDoubleClick = WM_XBUTTONDBLCLK,
        MouseHorizontalWheel = WM_MOUSEHWHEEL,
        MouseLast = WM_MOUSELAST,

        ParentNotify = WM_PARENTNOTIFY,
        EnterMenuLoop = WM_ENTERMENULOOP,
        ExitMenuLoop = WM_EXITMENULOOP,

        NextMenu = WM_NEXTMENU,
        Sizing = WM_SIZING,
        CaptureChanged = WM_CAPTURECHANGED,
        Moving = WM_MOVING,

        PowerBroadcast = WM_POWERBROADCAST,

        DeviceChange = WM_DEVICECHANGE,


        MdiCreate = WM_MDICREATE,
        MdiDestroy = WM_MDIDESTROY,
        MdiActivate = WM_MDIACTIVATE,
        MdiRestore = WM_MDIRESTORE,
        MdiNext = WM_MDINEXT,
        MdiMaximize = WM_MDIMAXIMIZE,
        MdiTile = WM_MDITILE,
        MdiCascade = WM_MDICASCADE,
        MdiIconArrange = WM_MDIICONARRANGE,
        MdiGetActive = WM_MDIGETACTIVE,

        MdiSetMenu = WM_MDISETMENU,
        EnterSizeMove = WM_ENTERSIZEMOVE,
        ExitSizeMove = WM_EXITSIZEMOVE,
        DropFiles = WM_DROPFILES,
        MdiRefreshMenu = WM_MDIREFRESHMENU,

        PointerDeviceChange = WM_POINTERDEVICECHANGE,
        PointerDeviceInRange = WM_POINTERDEVICEINRANGE,
        PointerDeviceOutOfRange = WM_POINTERDEVICEOUTOFRANGE,

        Touch = WM_TOUCH,

        NCPointerUpdate = WM_NCPOINTERUPDATE,
        NCPointerDown = WM_NCPOINTERDOWN,
        NCPointerUp = WM_NCPOINTERUP,
        PointerUpdate = WM_POINTERUPDATE,
        PointerDown = WM_POINTERDOWN,
        PointerUp = WM_POINTERUP,
        PointerEnter = WM_POINTERENTER,
        PointerLeave = WM_POINTERLEAVE,
        PointerActivate = WM_POINTERACTIVATE,
        PointerCaptureChanged = WM_POINTERCAPTURECHANGED,
        TouchHitTesting = WM_TOUCHHITTESTING,
        PointerWheel = WM_POINTERWHEEL,
        PointerHorizontalWheel = WM_POINTERHWHEEL,
        DirectManipulationPointerHitTest = 0x250,

        ImeSetContext = WM_IME_SETCONTEXT,
        ImeNotify = WM_IME_NOTIFY,
        ImeControl = WM_IME_CONTROL,
        ImeCompositionFull = WM_IME_COMPOSITIONFULL,
        ImeSelect = WM_IME_SELECT,
        ImeChar = WM_IME_CHAR,
        ImeRequest = WM_IME_REQUEST,
        ImeKeyDown = WM_IME_KEYDOWN,
        ImeKeyUp = WM_IME_KEYUP,

        MouseHover = WM_MOUSEHOVER,
        MouseLeave = WM_MOUSELEAVE,
        NCMouseHover = WM_NCMOUSEHOVER,
        NCMouseLeave = WM_NCMOUSELEAVE,

        WTSSessionChange = WM_WTSSESSION_CHANGE,

        TabletFirst = WM_TABLET_FIRST,
        TabletLast = WM_TABLET_LAST,

        DpiChanged = WM_DPICHANGED,

        Cut = WM_CUT,
        Copy = WM_COPY,
        Paste = WM_PASTE,
        Clear = WM_CLEAR,
        Undo = WM_UNDO,
        RenderFormat = WM_RENDERFORMAT,
        RenderAllFormats = WM_RENDERALLFORMATS,
        DestroyClipboard = WM_DESTROYCLIPBOARD,
        DrawClipboard = WM_DRAWCLIPBOARD,
        PaintClipboard = WM_PAINTCLIPBOARD,
        VerticalScrollClipboard = WM_VSCROLLCLIPBOARD,
        SizeClipboard = WM_SIZECLIPBOARD,
        AskClipboardFormatName = WM_ASKCBFORMATNAME,
        ChangeClipboardChain = WM_CHANGECBCHAIN,
        HorizontalScrollClipboard = WM_HSCROLLCLIPBOARD,
        QueryNewPalette = WM_QUERYNEWPALETTE,
        PaletteIsChanging = WM_PALETTEISCHANGING,
        PaletteChanged = WM_PALETTECHANGED,
        HotKey = WM_HOTKEY,

        Print = WM_PRINT,
        PrintClient = WM_PRINTCLIENT,

        ApplicationCommand = WM_APPCOMMAND,

        ThemeChanged = WM_THEMECHANGED,

        ClipboardUpdate = WM_CLIPBOARDUPDATE,

        DwmCompositionChanged = WM_DWMCOMPOSITIONCHANGED,
        DwmNCRenderingChanged = WM_DWMNCRENDERINGCHANGED,
        DwmColorizationColorChanged = WM_DWMCOLORIZATIONCOLORCHANGED,
        DwmWindowMaximizedChange = WM_DWMWINDOWMAXIMIZEDCHANGE,

        DwmSendIconicThumbnail = WM_DWMSENDICONICTHUMBNAIL,
        DwmSendIconicLivePreviewBitmap = WM_DWMSENDICONICLIVEPREVIEWBITMAP,

        GetTitleBarInfoEx = WM_GETTITLEBARINFOEX,

        HandheldFirst = WM_HANDHELDFIRST,
        HandheldLast = WM_HANDHELDLAST,

        PenWinFirst = WM_PENWINFIRST,
        PenWinLast = WM_PENWINLAST,

        Application = WM_APP,

        UserMessage = WM_USER,
    }
}
